/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.edu.upc.dew.proyecto.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import pe.edu.upc.dew.proyecto.bd.Conexion;
import pe.edu.upc.dew.proyecto.model.Paciente;

/**
 *Implementación de la interfaz PacienteDao
 *
 * @author Fernando
 */
public class PacienteDaoImpl implements PacienteDao {
    /**
     * Implentación del metodo asociado a la interfaz
     * 
     * @param copersona
     * @return
     */
    public Paciente getPacientePorCodigo(int copersona) {

        Paciente paciente = null;

        Connection connection = null;
        Statement st = null;
        ResultSet rsPersona = null;
        ResultSet rsPaciente = null;


        try{
            connection= Conexion.obtenerConexion();
            st = connection.createStatement();
            rsPaciente = st.executeQuery("select * from Paciente where copersona ="+ Integer.toString(copersona));
            if (rsPaciente.next()){
                paciente = new Paciente();
                paciente.setCoPersona(copersona);
                paciente.setNumHistoria(rsPaciente.getInt("NumHistoria"));

                rsPersona = st.executeQuery("select * from Persona where copersona ="+ Integer.toString(copersona));

                if (rsPersona.next()){

                    paciente.setDocIdentidad(rsPersona.getString("docidentidad"));
                    paciente.setApePaterno(rsPersona.getString("ApePaterno"));
                    paciente.setApeMaterno(rsPersona.getString("ApeMaterno"));
                    paciente.setNombre1(rsPersona.getString("Nombre1"));
                    paciente.setNombre2(rsPersona.getString("Nombre2"));
                    paciente.setSexo(rsPersona.getString("Sexo"));
                    paciente.setFechaNacimiento( rsPersona.getDate("FechaNacimiento") );
                    paciente.setDireccion(rsPersona.getString("Direccion"));
                    paciente.setTelefono(rsPersona.getString("Telefono"));
                }
            }
        }
        catch(Exception e){
        e.printStackTrace();
        }
        finally {
            Conexion.closeResultSet(rsPersona);
            Conexion.closeResultSet(rsPaciente);
            Conexion.closeStatement(st);
            Conexion.closeConnection(connection);
        }

        return paciente;
    }
    public Paciente getPacientePorHistoria(String historia){
        Paciente paciente = null;

        return paciente;
    }


}
